/*
 * @Author: yuanchenxi 836909158@qq.com
 * @Date: 2024-07-15 17:22:12
 * @LastEditors: 武兴创 superjava@vip.qq.com
 * @LastEditTime: 2024-08-28 17:43:40
 * @FilePath: \SGFEM\DataStructure\FEM\Element\include\CPYRAMData.h
 */
#pragma once
#include "DataStructure/Common/DataStructureExport.h"
#include "DataStructure/Common/DataStructureNamespace.h"
#include "DataStructure/Common/Id.h"
#include "DataStructure/Input/Element/ElementBase.h"
SG_DATASTRUCTURE_FEM_NAMESPACE_OPEN
/** @brief 金字塔单元数据
 *
 * 可用于储存 低阶和高阶（带边中点）单元
 */
struct DECLSPEC CPYRAMData : public ElementBase
{
    SG::DataStructure::Common::Id m_pId      = 0;      ///< MPCD条目的编号
    SG::DataStructure::Common::Id m_g[13]    = { 0 };  ///< 节点编号
    SG::DataStructure::Common::Id m_domainId = 0;

  protected:
    CPYRAMData () = default;
    // 友元声明
    DB_CREATE_FRIEND ()
};

DECLSPEC bool operator== (const CPYRAMData& a, const CPYRAMData& b);

struct DECLSPEC CPYRAM5Data : public CPYRAMData
{};

struct DECLSPEC CPYRAM13Data : public CPYRAMData
{};

SG_DATASTRUCTURE_FEM_NAMESPACE_CLOSE
